package org.base.mode.config;

import org.base.mode.config.interceptor.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * web MVC 配置，配置拦截器
 * CRC
 * 2022/2/7
 */
@Configuration
public class WebConfigurer implements WebMvcConfigurer {

    /**
     * 注入自定义的登录认证拦截器
     */
    @Autowired
    private LoginInterceptor loginInterceptor;

    /**
     * 静态资源拦截器，比如 html,css,js 等
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

    }


    /**
     * 注册拦截器，注册声明的拦截器，比如登录拦截器
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        /**
         * 配置拦截内容：
         * addInterceptor： 添加自定义拦截器（比如自定义的登录拦截器）
         * addPathPatterns：表示拦截所有请求
         * excludePathPatterns： 表示除了登录请求，注册请求不进行拦截
         */
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns("/login", "/register");


    }
}
